﻿using Magicodes.ExporterAndImporter.Core;
using Magicodes.ExporterAndImporter.Excel;
namespace Robotec.NET.Application;

    /// <summary>
    /// 页面统一配置输出参数
    /// </summary>
    public class SysPageOptionConfigDto
    {
        /// <summary>
        /// 表格高度
        /// </summary>
        public string? height { get; set; }
        
        /// <summary>
        /// 搜索菜单栏的栅格宽度
        /// </summary>
        public int? searchMenuSpan { get; set; }
        
        /// <summary>
        /// 列表行操作栏宽度
        /// </summary>
        public int? menuWidth { get; set; }
        
        /// <summary>
        /// 搜索框长度
        /// </summary>
        public int? searchSpan { get; set; }
        
        /// <summary>
        /// 列宽
        /// </summary>
        public int? labelWidth { get; set; }
        
        /// <summary>
        /// 搜索按钮
        /// </summary>
        public bool? searchIcon { get; set; }
        
        /// <summary>
        /// 打印按钮
        /// </summary>
        public bool? printBtn { get; set; }
        
        /// <summary>
        /// 导出按钮
        /// </summary>
        public bool? excelBtn { get; set; }
        
        /// <summary>
        /// 保存按钮
        /// </summary>
        public bool? saveCustomBtn { get; set; }
        
        /// <summary>
        /// 编辑按钮
        /// </summary>
        public bool? editCustomBtn { get; set; }
        
        /// <summary>
        /// 删除按钮
        /// </summary>
        public bool? delCustomBtn { get; set; }
        
        /// <summary>
        /// 查看按钮
        /// </summary>
        public bool? viewBtn { get; set; }
        
        /// <summary>
        /// 新增按钮
        /// </summary>
        public bool? addCustomBtn { get; set; }
        
        /// <summary>
        /// 数据为空的提示
        /// </summary>
        public string? emptyText { get; set; }
        
        /// <summary>
        /// 编辑按钮描述
        /// </summary>
        public string? editCustomText { get; set; }
        
        /// <summary>
        /// 保存按钮描述
        /// </summary>
        public string? saveCustomText { get; set; }
        
        /// <summary>
        /// 新增按钮描述
        /// </summary>
        public string? addCustomText { get; set; }
        
        /// <summary>
        /// 删除按钮描述
        /// </summary>
        public string? delCustomText { get; set; }
        
        /// <summary>
        /// 列表行操作栏显示
        /// </summary>
        public bool? menu { get; set; }
        
        /// <summary>
        /// 顶部过滤按钮
        /// </summary>
        public bool? filterBtn { get; set; }
        
        /// <summary>
        /// 列表边框
        /// </summary>
        public bool? border { get; set; }
        
        /// <summary>
        /// 勾选框
        /// </summary>
        public bool? selection { get; set; }
        
        /// <summary>
        /// 展开行
        /// </summary>
        public bool? expand { get; set; }
        
        /// <summary>
        /// 列表多选
        /// </summary>
        public bool? tableMultiple { get; set; }
        
        /// <summary>
        /// 保存按钮/取消按钮
        /// </summary>
        public bool? cellBtn { get; set; }
        
        /// <summary>
        /// 行拖拽
        /// </summary>
        public bool? rowSort { get; set; }
        
        /// <summary>
        /// 新增按钮图标
        /// </summary>
        public string? addCustomIcon { get; set; }
        
        /// <summary>
        /// 配置按钮
        /// </summary>
        public bool? settingBtn { get; set; }
        
        /// <summary>
        /// 删除按钮图标
        /// </summary>
        public string? delCustomIcon { get; set; }
        
        /// <summary>
        /// 列表主键
        /// </summary>
        public string? rowKey { get; set; }
        
        /// <summary>
        /// 翻页勾选/保留之前的勾选
        /// </summary>
        public bool? reserveSelection { get; set; }
        
        /// <summary>
        /// 表格弹窗是否可以通过点击modal关闭
        /// </summary>
        public bool? dialogClickModal { get; set; }
        
    [SugarColumn(IsJson =true)]
    public List<KeyValue> defaultSort { get; set; } 
        /// <summary>
        /// 弹出框拖拽
        /// </summary>
        public bool? dialogDrag { get; set; }
        
        /// <summary>
        /// 弹出框样式
        /// </summary>
        public string? dialogDirection { get; set; }
        
        /// <summary>
        /// 弹出框样式类型
        /// </summary>
        public string? dialogType { get; set; }
        
        /// <summary>
        /// 编辑按钮图标
        /// </summary>
        public string? editCustomIcon { get; set; }
        
        /// <summary>
        /// 保存按钮图标
        /// </summary>
        public string? saveCustomIcon { get; set; }
        
        /// <summary>
        /// 列表拖拽
        /// </summary>
        public bool? sortable { get; set; }
        
        /// <summary>
        /// 索引名称
        /// </summary>
        public string? indexLabel { get; set; }
        
        /// <summary>
        /// 弹框宽度
        /// </summary>
        public string? dialogWidth { get; set; }
        
        /// <summary>
        /// 表格高度差
        /// </summary>
        public int? calcHeight { get; set; }
        
        /// <summary>
        /// 表单栏间距
        /// </summary>
        public int? gutter { get; set; }
        
        /// <summary>
        /// 首次加载是否显示搜索
        /// </summary>
        public bool? searchShow { get; set; }
        
        /// <summary>
        /// 表头对其
        /// </summary>
        public string? headerAlign { get; set; }
        
        /// <summary>
        /// 内容对其
        /// </summary>
        public string? align { get; set; }
        
        /// <summary>
        /// 展开树
        /// </summary>
        public bool? tree { get; set; }
        
        /// <summary>
        /// 最多展开层
        /// </summary>
        public int? expandLevel { get; set; }
        
        /// <summary>
        /// 配置代码
        /// </summary>
        public string? configCode { get; set; }
        
        /// <summary>
        /// 序号
        /// </summary>
        public bool? index { get; set; }
        
        /// <summary>
        /// Id
        /// </summary>
        public long Id { get; set; }
        
        /// <summary>
        /// 路由路径
        /// </summary>
        public string? configPath { get; set; }
        
        /// <summary>
        /// 配置名称
        /// </summary>
        public string? configName { get; set; }
        
    }

    
  /// <summary>
    /// 页面统一配置导出导入
    /// </summary>
    [ExcelExporter(Name = "页面统一配置", TableStyle = OfficeOpenXml.Table.TableStyles.None, AutoFitAllColumn = true,AutoCenter =true)]
    [ExcelImporter( IsLabelingError = true,SheetName ="页面统一配置")]
    public class ExportImportSysPageOptionConfigDto
    {
        /// <summary>
        /// 表格高度
        /// </summary>
        [ExporterHeader(DisplayName = "表格高度", IsBold = true)]
        [ImporterHeader(Name = "表格高度")]
        public string? height { get; set; }
        
        /// <summary>
        /// 搜索菜单栏的栅格宽度
        /// </summary>
        [ExporterHeader(DisplayName = "搜索菜单栏的栅格宽度", IsBold = true)]
        [ImporterHeader(Name = "搜索菜单栏的栅格宽度")]
        public int? searchMenuSpan { get; set; }
        
        /// <summary>
        /// 列表行操作栏宽度
        /// </summary>
        [ExporterHeader(DisplayName = "列表行操作栏宽度", IsBold = true)]
        [ImporterHeader(Name = "列表行操作栏宽度")]
        public int? menuWidth { get; set; }
        
        /// <summary>
        /// 搜索框长度
        /// </summary>
        [ExporterHeader(DisplayName = "搜索框长度", IsBold = true)]
        [ImporterHeader(Name = "搜索框长度")]
        public int? searchSpan { get; set; }
        
        /// <summary>
        /// 列宽
        /// </summary>
        [ExporterHeader(DisplayName = "列宽", IsBold = true)]
        [ImporterHeader(Name = "列宽")]
        public int? labelWidth { get; set; }
        
        /// <summary>
        /// 搜索按钮
        /// </summary>
        [ExporterHeader(DisplayName = "搜索按钮", IsBold = true)]
        [ImporterHeader(Name = "搜索按钮")]
        public bool? searchIcon { get; set; }
        
        /// <summary>
        /// 打印按钮
        /// </summary>
        [ExporterHeader(DisplayName = "打印按钮", IsBold = true)]
        [ImporterHeader(Name = "打印按钮")]
        public bool? printBtn { get; set; }
        
        /// <summary>
        /// 导出按钮
        /// </summary>
        [ExporterHeader(DisplayName = "导出按钮", IsBold = true)]
        [ImporterHeader(Name = "导出按钮")]
        public bool? excelBtn { get; set; }
        
        /// <summary>
        /// 保存按钮
        /// </summary>
        [ExporterHeader(DisplayName = "保存按钮", IsBold = true)]
        [ImporterHeader(Name = "保存按钮")]
        public bool? saveCustomBtn { get; set; }
        
        /// <summary>
        /// 编辑按钮
        /// </summary>
        [ExporterHeader(DisplayName = "编辑按钮", IsBold = true)]
        [ImporterHeader(Name = "编辑按钮")]
        public bool? editCustomBtn { get; set; }
        
        /// <summary>
        /// 删除按钮
        /// </summary>
        [ExporterHeader(DisplayName = "删除按钮", IsBold = true)]
        [ImporterHeader(Name = "删除按钮")]
        public bool? delCustomBtn { get; set; }
        
        /// <summary>
        /// 查看按钮
        /// </summary>
        [ExporterHeader(DisplayName = "查看按钮", IsBold = true)]
        [ImporterHeader(Name = "查看按钮")]
        public bool? viewBtn { get; set; }
        
        /// <summary>
        /// 新增按钮
        /// </summary>
        [ExporterHeader(DisplayName = "新增按钮", IsBold = true)]
        [ImporterHeader(Name = "新增按钮")]
        public bool? addCustomBtn { get; set; }
        
        /// <summary>
        /// 数据为空的提示
        /// </summary>
        [ExporterHeader(DisplayName = "数据为空的提示", IsBold = true)]
        [ImporterHeader(Name = "数据为空的提示")]
        public string? emptyText { get; set; }
        
        /// <summary>
        /// 编辑按钮描述
        /// </summary>
        [ExporterHeader(DisplayName = "编辑按钮描述", IsBold = true)]
        [ImporterHeader(Name = "编辑按钮描述")]
        public string? editCustomText { get; set; }
        
        /// <summary>
        /// 保存按钮描述
        /// </summary>
        [ExporterHeader(DisplayName = "保存按钮描述", IsBold = true)]
        [ImporterHeader(Name = "保存按钮描述")]
        public string? saveCustomText { get; set; }
        
        /// <summary>
        /// 新增按钮描述
        /// </summary>
        [ExporterHeader(DisplayName = "新增按钮描述", IsBold = true)]
        [ImporterHeader(Name = "新增按钮描述")]
        public string? addCustomText { get; set; }
        
        /// <summary>
        /// 删除按钮描述
        /// </summary>
        [ExporterHeader(DisplayName = "删除按钮描述", IsBold = true)]
        [ImporterHeader(Name = "删除按钮描述")]
        public string? delCustomText { get; set; }
        
        /// <summary>
        /// 列表行操作栏显示
        /// </summary>
        [ExporterHeader(DisplayName = "列表行操作栏显示", IsBold = true)]
        [ImporterHeader(Name = "列表行操作栏显示")]
        public bool? menu { get; set; }
        
        /// <summary>
        /// 顶部过滤按钮
        /// </summary>
        [ExporterHeader(DisplayName = "顶部过滤按钮", IsBold = true)]
        [ImporterHeader(Name = "顶部过滤按钮")]
        public bool? filterBtn { get; set; }
        
        /// <summary>
        /// 列表边框
        /// </summary>
        [ExporterHeader(DisplayName = "列表边框", IsBold = true)]
        [ImporterHeader(Name = "列表边框")]
        public bool? border { get; set; }
        
        /// <summary>
        /// 勾选框
        /// </summary>
        [ExporterHeader(DisplayName = "勾选框", IsBold = true)]
        [ImporterHeader(Name = "勾选框")]
        public bool? selection { get; set; }
        
        /// <summary>
        /// 展开行
        /// </summary>
        [ExporterHeader(DisplayName = "展开行", IsBold = true)]
        [ImporterHeader(Name = "展开行")]
        public bool? expand { get; set; }
        
        /// <summary>
        /// 列表多选
        /// </summary>
        [ExporterHeader(DisplayName = "列表多选", IsBold = true)]
        [ImporterHeader(Name = "列表多选")]
        public bool? tableMultiple { get; set; }
        
        /// <summary>
        /// 保存按钮/取消按钮
        /// </summary>
        [ExporterHeader(DisplayName = "保存按钮/取消按钮", IsBold = true)]
        [ImporterHeader(Name = "保存按钮/取消按钮")]
        public bool? cellBtn { get; set; }
        
        /// <summary>
        /// 行拖拽
        /// </summary>
        [ExporterHeader(DisplayName = "行拖拽", IsBold = true)]
        [ImporterHeader(Name = "行拖拽")]
        public bool? rowSort { get; set; }
        
        /// <summary>
        /// 新增按钮图标
        /// </summary>
        [ExporterHeader(DisplayName = "新增按钮图标", IsBold = true)]
        [ImporterHeader(Name = "新增按钮图标")]
        public string? addCustomIcon { get; set; }
        
        /// <summary>
        /// 配置按钮
        /// </summary>
        [ExporterHeader(DisplayName = "配置按钮", IsBold = true)]
        [ImporterHeader(Name = "配置按钮")]
        public bool? settingBtn { get; set; }
        
        /// <summary>
        /// 删除按钮图标
        /// </summary>
        [ExporterHeader(DisplayName = "删除按钮图标", IsBold = true)]
        [ImporterHeader(Name = "删除按钮图标")]
        public string? delCustomIcon { get; set; }
        
        /// <summary>
        /// 列表主键
        /// </summary>
        [ExporterHeader(DisplayName = "列表主键", IsBold = true)]
        [ImporterHeader(Name = "列表主键")]
        public string? rowKey { get; set; }
        
        /// <summary>
        /// 翻页勾选/保留之前的勾选
        /// </summary>
        [ExporterHeader(DisplayName = "翻页勾选/保留之前的勾选", IsBold = true)]
        [ImporterHeader(Name = "翻页勾选/保留之前的勾选")]
        public bool? reserveSelection { get; set; }
        
        /// <summary>
        /// 表格弹窗是否可以通过点击modal关闭
        /// </summary>
        [ExporterHeader(DisplayName = "表格弹窗是否可以通过点击modal关闭", IsBold = true)]
        [ImporterHeader(Name = "表格弹窗是否可以通过点击modal关闭")]
        public bool? dialogClickModal { get; set; }
        
        /// <summary>
        /// 排序
        /// </summary>
         [ExporterHeader(DisplayName = "排序", IsBold = true)]
        [ImporterHeader(Name = "排序")]
        [SugarColumn(IsJson =true)]
        public List<KeyValue> defaultSort { get; set; }
        
        /// <summary>
        /// 弹出框拖拽
        /// </summary>
        [ExporterHeader(DisplayName = "弹出框拖拽", IsBold = true)]
        [ImporterHeader(Name = "弹出框拖拽")]
        public bool? dialogDrag { get; set; }
        
        /// <summary>
        /// 弹出框样式
        /// </summary>
        [ExporterHeader(DisplayName = "弹出框样式", IsBold = true)]
        [ImporterHeader(Name = "弹出框样式")]
        public string? dialogDirection { get; set; }
        
        /// <summary>
        /// 弹出框样式类型
        /// </summary>
        [ExporterHeader(DisplayName = "弹出框样式类型", IsBold = true)]
        [ImporterHeader(Name = "弹出框样式类型")]
        public string? dialogType { get; set; }
        
        /// <summary>
        /// 编辑按钮图标
        /// </summary>
        [ExporterHeader(DisplayName = "编辑按钮图标", IsBold = true)]
        [ImporterHeader(Name = "编辑按钮图标")]
        public string? editCustomIcon { get; set; }
        
        /// <summary>
        /// 保存按钮图标
        /// </summary>
        [ExporterHeader(DisplayName = "保存按钮图标", IsBold = true)]
        [ImporterHeader(Name = "保存按钮图标")]
        public string? saveCustomIcon { get; set; }
        
        /// <summary>
        /// 列表拖拽
        /// </summary>
        [ExporterHeader(DisplayName = "列表拖拽", IsBold = true)]
        [ImporterHeader(Name = "列表拖拽")]
        public bool? sortable { get; set; }
        
        /// <summary>
        /// 索引名称
        /// </summary>
        [ExporterHeader(DisplayName = "索引名称", IsBold = true)]
        [ImporterHeader(Name = "索引名称")]
        public string? indexLabel { get; set; }
        
        /// <summary>
        /// 弹框宽度
        /// </summary>
        [ExporterHeader(DisplayName = "弹框宽度", IsBold = true)]
        [ImporterHeader(Name = "弹框宽度")]
        public string? dialogWidth { get; set; }
        
        /// <summary>
        /// 表格高度差
        /// </summary>
        [ExporterHeader(DisplayName = "表格高度差", IsBold = true)]
        [ImporterHeader(Name = "表格高度差")]
        public int? calcHeight { get; set; }
        
        /// <summary>
        /// 表单栏间距
        /// </summary>
        [ExporterHeader(DisplayName = "表单栏间距", IsBold = true)]
        [ImporterHeader(Name = "表单栏间距")]
        public int? gutter { get; set; }
        
        /// <summary>
        /// 首次加载是否显示搜索
        /// </summary>
        [ExporterHeader(DisplayName = "首次加载是否显示搜索", IsBold = true)]
        [ImporterHeader(Name = "首次加载是否显示搜索")]
        public bool? searchShow { get; set; }
        
        /// <summary>
        /// 表头对其
        /// </summary>
        [ExporterHeader(DisplayName = "表头对其", IsBold = true)]
        [ImporterHeader(Name = "表头对其")]
        public string? headerAlign { get; set; }
        
        /// <summary>
        /// 内容对其
        /// </summary>
        [ExporterHeader(DisplayName = "内容对其", IsBold = true)]
        [ImporterHeader(Name = "内容对其")]
        public string? align { get; set; }
        
        /// <summary>
        /// 展开树
        /// </summary>
        [ExporterHeader(DisplayName = "展开树", IsBold = true)]
        [ImporterHeader(Name = "展开树")]
        public bool? tree { get; set; }
        
        /// <summary>
        /// 最多展开层
        /// </summary>
        [ExporterHeader(DisplayName = "最多展开层", IsBold = true)]
        [ImporterHeader(Name = "最多展开层")]
        public int? expandLevel { get; set; }
        
        /// <summary>
        /// 配置代码
        /// </summary>
        [ExporterHeader(DisplayName = "配置代码", IsBold = true)]
        [ImporterHeader(Name = "配置代码")]
        public string? configCode { get; set; }
        
        /// <summary>
        /// 序号
        /// </summary>
        [ExporterHeader(DisplayName = "序号", IsBold = true)]
        [ImporterHeader(Name = "序号")]
        public bool? index { get; set; }
        
        /// <summary>
        /// 路由路径
        /// </summary>
        [ExporterHeader(DisplayName = "路由路径", IsBold = true)]
        [ImporterHeader(Name = "路由路径")]
        public string? configPath { get; set; }
        
        /// <summary>
        /// 配置名称
        /// </summary>
        [ExporterHeader(DisplayName = "配置名称", IsBold = true)]
        [ImporterHeader(Name = "配置名称")]
        public string? configName { get; set; }
        
    }